# delimit ;

clear;
*version 13;
set matsize 400;
set more off;


log using "/Users/Jeff/Dropbox/TermLimits/Replication/Models/Military/Conditional/ServiceType/PredictedValues.log", replace;
cd "/Users/Jeff/Dropbox/TermLimits/Replication/Models/Military/Conditional/ServiceType";

**************************************************************;
*Author: Jeff Carter                                         *;
*Date: Monday, November 23, 2015  12:12                             *;
*Purpose: Simulating Predictions                *;
**************************************************************;



*********************************;
**      Peace to War            *;
*********************************;

use "/Users/Jeff/Dropbox/TermLimits/Replication/Models/Military/Conditional/ServiceType/SimData.dta";

postutil clear;

postfile mypost prob_hat0 lo0 hi0 prob_hat1 lo1 hi1 diff_hat0 diff_lo0 diff_hi0
                prob_hat01 lo01 hi01 prob_hat11 lo11 hi11 diff_hat01 diff_lo01 diff_hi01
                prob_hat02 lo02 hi02 prob_hat12 lo12 hi12 diff_hat02 diff_lo02 diff_hi02
                delta_hat delta_lo delta_hi
                delta_hat1 delta_lo1 delta_hi1 using PredictedValues, replace;

noisily display "start";


local a=0 ;
while `a' < .1 { ;

{;



scalar h_Accountable =   0  ;
scalar h_LameDuck= 1  ;
scalar h_Civilian = 0;
scalar h_Military = 1;
scalar h_Constant = 1;
scalar h_NonCombat = 1;
scalar h_Combat = 1; 
scalar h_Parliament = 0;
scalar h_CivilWar = 0;
scalar h_GDPpc =  12589.35;
scalar h_Growth = 3.453132;
scalar h_MajorPower = 0;
scalar h_Borders = 2;
scalar h_Mobilization =  -.0008714 ;
scalar h_Time = 5; 
scalar h_Rivalry = 0;
scalar h_Female = 0;


generate x_betahat0 = MG_b1*h_Accountable
    + MG_b2*h_Civilian
    + MG_b3*(h_Accountable*h_Civilian)
    + MG_b4*h_Civilian
    + MG_b5*(h_Accountable*h_Civilian)
    + MG_b6*h_Rivalry
    + MG_b7*h_Borders
    + MG_b8*h_Parliament
    + MG_b9*h_Female
    + MG_b10*h_Time
    + MG_b11*(h_Time^2)
    + MG_b12*(h_Time^3)
    + MG_b13*h_Constant;


generate x_betahat1 = MG_b1* h_LameDuck
    + MG_b2*h_Civilian
    + MG_b3*(h_LameDuck*h_Civilian)
    + MG_b4*h_Civilian
    + MG_b5*(h_LameDuck*h_Civilian)
    + MG_b6*h_Rivalry
    + MG_b7*h_Borders
    + MG_b8*h_Parliament
    + MG_b9*h_Female
    + MG_b10*h_Time
    + MG_b11*(h_Time^2)
    + MG_b12*(h_Time^3)
    + MG_b13*h_Constant;


 
gen prob0=1/(1+exp(-x_betahat0));
gen prob1=1/(1+exp(-x_betahat1));

 
gen diff0=prob1-prob0 ;

egen probhat0=mean(prob0) ;
egen probhat1=mean(prob1) ;
egen diffhat0=mean(diff0) ;



generate x_betahat01 =   MG_b1*h_Accountable
    + MG_b2*h_NonCombat
    + MG_b3*(h_Accountable*h_NonCombat)
    + MG_b4*h_Civilian
    + MG_b5*(h_Accountable*h_Civilian)
    + MG_b6*h_Rivalry
    + MG_b7*h_Borders
    + MG_b8*h_Parliament
    + MG_b9*h_Female
    + MG_b10*h_Time
    + MG_b11*(h_Time^2)
    + MG_b12*(h_Time^3)
    + MG_b13*h_Constant;


 
generate x_betahat11 =   MG_b1* h_LameDuck
    + MG_b2*h_NonCombat
    + MG_b3*(h_LameDuck*h_NonCombat)
    + MG_b4*h_Civilian
    + MG_b5*(h_LameDuck*h_Civilian)
    + MG_b6*h_Rivalry
    + MG_b7*h_Borders
    + MG_b8*h_Parliament
    + MG_b9*h_Female
    + MG_b10*h_Time
    + MG_b11*(h_Time^2)
    + MG_b12*(h_Time^3)
    + MG_b13*h_Constant;

 
 
gen prob01=1/(1+exp(-x_betahat01));
gen prob11=1/(1+exp(-x_betahat11));

gen diff01=prob11-prob01 ;

egen probhat01=mean(prob01) ;
egen probhat11=mean(prob11) ;
egen diffhat01=mean(diff01) ;



generate x_betahat02 =   MG_b1*h_Accountable
    + MG_b2*h_Civilian
    + MG_b3*(h_Accountable*h_Civilian)
    + MG_b4*h_Combat
    + MG_b5*(h_Accountable*h_Combat)
    + MG_b6*h_Rivalry
    + MG_b7*h_Borders
    + MG_b8*h_Parliament
    + MG_b9*h_Female
    + MG_b10*h_Time
    + MG_b11*(h_Time^2)
    + MG_b12*(h_Time^3)
    + MG_b13*h_Constant;

 
generate x_betahat12 =   MG_b1* h_LameDuck
    + MG_b2*h_Civilian
    + MG_b3*(h_LameDuck*h_Civilian)
    + MG_b4*h_Combat
    + MG_b5*(h_LameDuck*h_Combat)
    + MG_b6*h_Rivalry
    + MG_b7*h_Borders
    + MG_b8*h_Parliament
    + MG_b9*h_Female
    + MG_b10*h_Time
    + MG_b11*(h_Time^2)
    + MG_b12*(h_Time^3)
    + MG_b13*h_Constant;


 
 
gen prob02=1/(1+exp(-x_betahat02));
gen prob12=1/(1+exp(-x_betahat12));

gen diff02=prob12-prob02 ;

egen probhat02=mean(prob02) ;
egen probhat12=mean(prob12) ;
egen diffhat02=mean(diff02) ;







 

gen delta=diff01-diff0;
gen delta1=diff02-diff0;
 
egen deltahat=mean(delta);
egen deltahat1=mean(delta1);




tempname prob_hat0 lo0 hi0 prob_hat1 lo1 hi1 diff_hat0 diff_lo0 diff_hi0
         prob_hat01 lo01 hi01 prob_hat11 lo11 hi11 diff_hat01 diff_lo01 diff_hi01
         prob_hat02 lo02 hi02 prob_hat12 lo12 hi12 diff_hat02 diff_lo02 diff_hi02
         delta_hat delta_lo delta_hi
         delta_hat1 delta_lo1 delta_hi1;

    _pctile prob0, p(2.5,97.5) ;
    scalar `lo0'=r(r1) ;
    scalar `hi0'=r(r2) ;

    _pctile prob1, p(2.5,97.5) ;
    scalar `lo1'=r(r1) ;
    scalar `hi1'=r(r2) ;

    _pctile diff0, p(2.5,97.5) ;
    scalar `diff_lo0'= r(r1) ;
    scalar `diff_hi0'=r(r2) ;


    scalar `prob_hat0'=probhat0 ;
    scalar `prob_hat1'=probhat1 ;
    scalar `diff_hat0'=diffhat0 ;


       _pctile prob01, p(2.5,97.5) ;
    scalar `lo01'=r(r1) ;
    scalar `hi01'=r(r2) ;

    _pctile prob11, p(2.5,97.5) ;
    scalar `lo11'=r(r1) ;
    scalar `hi11'=r(r2) ;

    _pctile diff01, p(2.5,97.5) ;
    scalar `diff_lo01'= r(r1) ;
    scalar `diff_hi01'=r(r2) ;


    scalar `prob_hat01'=probhat01 ;
    scalar `prob_hat11'=probhat11 ;
    scalar `diff_hat01'=diffhat01 ;


       _pctile prob02, p(2.5,97.5) ;
    scalar `lo02'=r(r1) ;
    scalar `hi02'=r(r2) ;

    _pctile prob12, p(2.5,97.5) ;
    scalar `lo12'=r(r1) ;
    scalar `hi12'=r(r2) ;

    _pctile diff02, p(2.5,97.5) ;
    scalar `diff_lo02'= r(r1) ;
    scalar `diff_hi02'=r(r2) ;


    scalar `prob_hat02'=probhat02 ;
    scalar `prob_hat12'=probhat12 ;
    scalar `diff_hat02'=diffhat02 ;




 
    _pctile delta, p(2.5,97.5) ;
    scalar `delta_lo'= r(r1) ;
    scalar `delta_hi'=r(r2) ;

     _pctile delta1, p(2.5,97.5) ;
    scalar `delta_lo1'= r(r1) ;
    scalar `delta_hi1'=r(r2) ;

 
    scalar `delta_hat'=deltahat;
    scalar `delta_hat1'=deltahat1;


    post mypost (`prob_hat0') (`lo0') (`hi0') (`prob_hat1') (`lo1') (`hi1') (`diff_hat0') (`diff_lo0') (`diff_hi0')
                (`prob_hat01') (`lo01') (`hi01') (`prob_hat11') (`lo11') (`hi11') (`diff_hat01') (`diff_lo01') (`diff_hi01')
                (`prob_hat02') (`lo02') (`hi02') (`prob_hat12') (`lo12') (`hi12') (`diff_hat02') (`diff_lo02') (`diff_hi02')
                (`delta_hat') (`delta_lo') (`delta_hi')
                (`delta_hat1') (`delta_lo1') (`delta_hi1')

    ;

    } ;

    drop    x_betahat0 x_betahat1 prob0 prob1 diff0 probhat0 probhat1 diffhat0
            x_betahat01 x_betahat11 prob01 prob11 diff01 probhat01 probhat11 diffhat01
            x_betahat02 x_betahat12 prob02 prob12 diff02 probhat02 probhat12 diffhat02
            delta deltahat
            delta1 deltahat1;

    local a=`a'+ .1 ;

    display "." _c ;
    } ;
display "" ; postclose mypost ;



use PredictedValues, clear;
sum;

saveold PredictedValues, replace;


log close;
